// To parse the JSON, install Klaxon and do:
//
//   val realResult = RealResult.fromJson(jsonString)

package json_schema.s0017.device.real_result_package

import com.beust.klaxon.*

private val klaxon = Klaxon()

/**
 * 实时成绩
 */
data class RealResult (
    /**
     * 头部数据
     */
    @Json(name = "Head")
    val head: Head,

    /**
     * 主体数据
     */
    @Json(name = "Body")
    val body: Body
) {
    public fun toJson() = klaxon.toJsonString(this)

    companion object {
        public fun fromJson(json: String) = klaxon.parse<RealResult>(json)
    }
}

/**
 * 主体数据
 */
data class Body (
    /**
     * 代表队/代表团/俱乐部
     */
    @Json(name = "Team")
    val team: String,

    /**
     * 运动员姓名
     */
    @Json(name = "AthleteName")
    val athleteName: String,

    /**
     * 运动员号码
     */
    @Json(name = "AthleteBib")
    val athleteBib: String,

    /**
     * 运动员联系方式
     */
    @Json(name = "AthleteTelephone")
    val athleteTelephone: String,

    /**
     * A线成绩
     */
    @Json(name = "ResultA")
    val resultA: String,

    /**
     * B线成绩
     */
    @Json(name = "ResultB")
    val resultB: String,

    /**
     * 排名
     */
    @Json(name = "Rank")
    val rank: String
)

/**
 * 头部数据
 */
data class Head (
    /**
     * 设备Id
     */
    @Json(name = "DeviceId")
    val deviceID: String,

    /**
     * 消息Uuid
     */
    @Json(name = "MessageUuid")
    val messageUUID: String,

    /**
     * 发送消息的时间。格式：yyyy-MM-dd HH:mm:ss.fff 比如：2020-09-02 12:24:09.923
     */
    @Json(name = "Timestamp")
    val timestamp: String,

    /**
     * 消息类型
     */
    @Json(name = "MessageType")
    val messageType: String
)
